Compared with a wired link, a wireless link has a poorer and less stable transmission environment. As a result, a transmission rate of the wireless link is low, and a bit error rate of the wireless link is high. As such, the modern wireless communications industry has been trying to find a solution that provides a high transmission rate and a low bit error rate against inherent features of the wireless link to reduce unfavorable impact of the wireless link on communication. One solution combines a Hybrid Auto-Repeat reQuest (HARQ) technology and a Robust Header Compression (ROHC) technology.
An HARQ is a request retransmission technology that introduces Forward Error Correction (FEC) to an Auto-Repeat reQuest (ARQ). A basic processing principle is as follows: If a transmission error is within a correction scope of the FEC, forward error correction is implemented; if the transmission error is beyond the correction scope of the FEC, a receive party requests for retransmission. ROHC is a flow-based Header Compression (HC) scheme that can compress headers with overlarge overhead in some data packets (for example, IPv6 packets) to reduce data transmission volume and improve bandwidth usage rate. In a wireless communication system, a unidirectional ROHC channel (a logical channel) and an ROHC feedback channel (FCH) can be established by using an ROHC mechanism. An ingress of the unidirectional ROHC channel is a compressor, and an egress of the unidirectional ROHC channel is a decompressor. The ROHC FCH is a logical channel that carries feedback information. An ingress of the ROHC FCH is a decompressor, and an egress of the ROHC FCH is a compressor. The compressors and decompressors of the two channels exist in pairs. After compressing a packet header of original data, a compressor sends the packet header to a decompressor through the ROHC channel. The decompressor of the ROHC FCH sends feedback information through the ROHC FCH to the compressor of the ROHC FCH.
In a word, header compression of the ROHC mechanism can be described as interaction between two state machines (a compression state machine and a decompression state machine). Each state machine has three different states. Both state machines gradually change from the lowest compression state to a higher state. The ROHC compression state machine includes three states: Initial and Refresh (IR), First Order (FO), and Second Order (SO) compression states. The ROHC decompression state machine includes three states: No Context (NC) decompression state, Static Context (SC) decompression state, and Full Context (FC) decompression state. For a compression state machine in the IR compression state, the decompressor barely has SC and Dynamic Context (DC) information required for decompression. The ROHC compressor sends an IR or IR-DYM data packet. The IR packet may include both SC information and DC information, while the IR-DYM packet can include only DC information. When the compressor receives SC information and a part of DC information, the compression state machine is in the FO compression state. When the decompressor receives all SC information and DC information, the compression state machine enters into the SO compression state, and the packet header of the original data is compressed to a maximum size. The NC decompression state is an initial state of a decompressor, indicating that the decompressor does not receive a data packet, and does not have any information required for decompression. The SC decompression state indicates that the decompressor obtains all static decompression information and a part of dynamic decompression information. The FC decompression state indicates that he decompressor obtains all decompression information.
Context information of the ROHC is classified into two different types: SC information and DC information. The SC information barely changes. Therefore, the compressor does not need to transmit SC information after a receive end correctly receives the information. The DC information changes. The DC information in an existing IP data packet header is mainly a serial number, a timestamp, and an IP identifier. These three parameters change according to a certain rule. The existing RFC 3095 defines specific compression methods for these three parameters in detail. The most important compression methods are Least Significant Bits (LSB) coding and Window-based LSB (W-LSB) coding. The W-LSB algorithm is an improvement on the LSB algorithm, and is an LSB coding algorithm based on a sliding window. During encoding of the W-LSB algorithm, a scope of the sliding window includes a group of reference base values. The decompressor can correctly decompress an encoded value after receiving any base value in the sliding window. After the W-LSB coding is used, the compressor will not lose synchronization with the decompressor unless all base values in the sliding window are lost.
For the W-LSB coding scheme, a Sliding Window Width (SWW) is an important parameter for evaluating robustness and a compression rate of the W-LSB coding. If the sliding window is too narrow, when a small number of packets are lost on a wireless channel, a data packet that is subsequently transmitted to the decompressor cannot be successfully decompressed. If the sliding window is too wide, the number of bits used to encode LSBs in each compression domain increases, lowering an efficiency of header compression.
According to the preceding research on the prior art, the inventor finds that: If a data packet that includes an update of the SC information has an error or is lost, all subsequent data packets cannot obtain the SC information, leading to a failure in decompressing a large number of subsequent data packets; if the number of continuously lost data packets is larger than W-LSB SWW, the DC information in the subsequent data packets cannot be parsed, leading to a decompression failure. In the existing ROHC mechanism, an incorrect packet header is directly dropped without further processing. Therefore, when the preceding scenarios occur, state rollback is triggered, context information is updated, and the decompression state is re-synchronized only when an error data packet ratio reaches a certain extent. Especially when the wireless link is in a poor condition, frequent state rollbacks occur, greatly lowering compression efficiency.
After a further research on the prior art, the inventor finds that the following problems occur when the ROHC mechanism and the ARQ mechanism (including the HARQ mechanism) are combined:
1. A retransmission mechanism of the ARQ leads to a disorder of data packets. The ARQ uses the retransmission mechanism to improve data transmission quality. As a result, a data packet whose Block Sequence Number (BSN) is small arrives later than a data packet whose BSN is large. In addition, the ROHC mechanism has only an anti-disorder capability to some extent. Once a disorder degree of data packets exceeds a capacity of the ROHC sliding window, an ROHC layer cannot correctly decompress a data packet even if the data packet can be correctly received, thereby wasting system resources.
2. The retransmission mechanism of the ARQ may make an ROHC receive end unable to send feedback information to an ROHC transmit end in a timely manner. Each sub-packet sent by the HARQ includes a large number of Service Data Units (SDUs). The receive end needs to receive and decompress an entire sub-packet before performing feedback to the transmit end. In this case, feedback delay of an ROHC data packet that is compressed early in the sub-packet is long. The ARQ uses a sliding window mechanism. The sliding window buffers a large number of SDUs. An SDU is transmitted to the decompressor at the ROHC layer only when the SDU is correctly received, thereby increasing the feedback delay of the ROHC data packet.
3. Assume that the HARQ mechanism is multi-process, and ROHC data packets with a same context identifier (ID) are encapsulated into different HARQ processes. Once the context information of the compressor and decompressor at the ROHC layer is not synchronized, the context information currently received by the decompressor at the ROHC layer does not corresponds to a currently received data packet. In this case, if the decompressor at the ROHC layer still uses the currently received context information to decompress the currently received data packet, decompression evidently fails.